/*
* 迭代深层 tokens
* 栈思维解析
* */
export default function nestTokens (tokens){
    var nextedTokens = []
    // 存放token值 入栈和出栈的容器
    var sections = []
    // 收集器 (引用类型值) 指向结果数据 => 起到递归效果
    var collector = nextedTokens

    for (let i = 0; i < tokens.length; i++) {
        let token = tokens[i]

        switch (token[0]){
            case '#':
                // 收集器中放入token
                collector.push(token)
                // 入栈
                sections.push(token)
                //收集器更新  ==>  递归到下一层
                collector = token[2] = []
                break
            case '/':
                //出栈
                let section_pop = sections.pop()
                //改变 收集器 往回执行
               collector = sections.length > 0? sections[sections.length - 1][2] : nextedTokens
                break
            default:
                collector.push(token)
        }
    }
    return nextedTokens
}